﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Pg.BioMedics.SDR.Services
{
    /// <summary>
    /// Loosly implementation for observer pattern for ASR tasks statuses monitoring.
    /// This service when started will periodically query ASRAgent for list of resulting 
    /// tasks and depending on this list will notify appropriate tasks about state change.
    /// </summary>
    public interface IObserverService : IService
    {
        /// <summary>
        /// Attaches monitoring logic to ASR engine
        /// </summary>
        void Attach();

        /// <summary>
        /// Detaches monitoring logic from ASR engine
        /// </summary>
        void Detach();

        /// <summary>
        /// Force ASR engine status check
        /// </summary>
        void ForceCheck();
    }
}
